<?php

session_start();

// Include i file necessari
include('inc/config.inc.php');
include('inc/template.inc.php');
include('inc/db.inc.php');
include('inc/check.inc.php');
 
// Variabili
$alt = ''; // Input aggiuntivi.
$con = ''; // Contenuto di default.
$sub = ''; // Valore del submit.
$bid = ''; // ID della bacheca.
$pid = ''; // ID del messaggio padre.
$tid = ''; // ID del messaggio.

$action = ( ! empty($_GET['act'])) ? (int)$_GET['act'] : 0;


//Recupera l'ID dell'utente.
$user_id = $_SESSION['uid'];

// Elenca i casi possibili.
switch ($action)
{
	case 1:
		// Nuovo Messaggio.
		if( ! empty($_POST['title']) AND ! empty($_POST['content']))
		{
			// Se � stato scritto un messaggio, lo inserisce nel database
			
			$title		= trim(mysqli_real_escape_string($db, $_POST['title']));
			$content	= trim(mysqli_real_escape_string($db, $_POST['content']));
			$board		= (int)$_POST['bid'];
			
			// Inserisce il topic
			$db -> query("INSERT INTO topics (topic_id, topic_title, topic_author, topic_date, topic_content, topic_board, topic_parent, topic_highlight, topic_lastreply) VALUES (NULL, '$title', '$user_id', NOW(), '$content', '$board', '0', '0', NOW())");
			
			// Recupera l'id del topic appena inserito...
			$mid = mysqli_insert_id($db);
			// ...e lo inserisce nel link per visualizzarlo
			$con = 'Messaggio inserito correttamente, <a href="topics.php?board=' . $board . '&topic=' . $mid . '" class="btn btn-link" target="_self">';
			$con .= '<b>Visualizzalo</b></a> oppure <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
			
		} else {
			// Se non � stato scritto, mostra il form per la scrittura
			$bid = $_GET['board'];
			
			$alt .= '<div class="form-group"><input type="hidden" name="bid" value="' . $bid . '" id="bid" />';
			$alt .= '<label for="title">Titolo del Topic</label><input type="text" class="form-control" name="title" id="title" /></div>';
			
			$con = '<div class="form-group"><label for="content">Messaggio del Topic</label>';
			$con .= '<textarea cols="80" rows="10" id="content" class="form-control" name="content"></textarea></div>'; 
			$sub .= '<input type="submit" class="btn btn-success" value="Inserisci" />';
		}
	break;

	case 2:
		// Risposta ad un topic esistente.
		if( ! empty($_POST['content']))
		{
			// Se � stata scritta una risposta, la inserisce nel database
			$content	= trim(mysqli_real_escape_string($db, $_POST['content']));
			$board		= (int)$_POST['bid'];
			$parent		= (int)$_POST['pid'];
			
			// Inserisce il messaggio
			$db -> query("INSERT INTO topics (topic_id, topic_title, topic_author, topic_date, topic_content, topic_board, topic_parent, topic_highlight, topic_lastreply) VALUES (NULL, '', '$user_id', NOW(), '$content', '$board', '$parent', '0', NOW())");
			// Aggiunge +1 alle risposte al messaggio padre
			$db -> query("UPDATE topics SET topic_replies = topic_replies+1, topic_lastreply = NOW() WHERE topic_id = '$parent'");
			
			// Recupera l'id del topic appena inserito...
			$mid = mysqli_insert_id($db);
			// ...e lo inserisce nel link per visualizzarlo
			$con = 'Risposta inserita correttamente, <a href="topics.php?board=' . $board . '&topic=' . $pid . '" class="btn btn-link" target="_self">';
			$con .= '<b>Visualizzala</b></a> oppure <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		} else {
			// Se non � stato scritto, mostra il form per la risposta
			$bid = (int)$_GET['board'];
			$pid = (int)$_GET['parent'];
			
			$alt .= '<input type="hidden" name="bid" value="'.$bid.'" id="bid">';
			$alt .= '<input type="hidden" name="pid" value="'.$pid.'" id="pid">';
			
			$con = '<div class="form-group"><label for="content">Risposta al Topic</label>';
			$con .= '<textarea cols="80" rows="10" id="content" class="form-control" name="content"></textarea></div>';
			
			$sub .= '<input type="submit" class="btn btn-success" value="Rispondi">';
		}
	break;

	case 3:
		// Modifica di un messaggio.
		if( ! empty($_POST['content']))
		{
			 // Se � stato scritto un messaggio, aggiorna il database
			$content	= trim(mysqli_real_escape_string($db, $_POST['content']));
			$title		= trim(mysqli_real_escape_string($db, $_POST['title']));
			
			$board = (int)$_POST['bid'];
			$topic = (int)$_POST['tid'];
			
			// Modifica il messaggio
			$db -> query("UPDATE topics SET topic_content = '$content', topic_title = '$title' WHERE topic_id = '$topic'");
			
			// Mostra l'esito
			$con = 'Messaggio modificato correttamente, <a href="topics.php?board=' . $board . '&topic=' . $topic . '" class="btn btn-link" target="_self">Visualizzalo</a>';
			$con .= ' oppure <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		} else {
				
			// Se non � stato scritto, mostra il form per la scrittura
			$bid = (int)$_GET['board'];
			$tid = (int)$_GET['topic'];
			
			$alt .= '<input type="hidden" name="bid" value="' . $bid . '" id="bid">'; 
			$alt .= '<input type="hidden" name="tid" value="' . $tid . '" id="tid">';
			
			// Recupera i dati del messaggio precedente
			if ($r1 = $db -> query("SELECT topic_content, topic_author, topic_parent, topic_title FROM topics WHERE topic_id = '$tid'"))
			{
				$rd1 = $r1 -> fetch_assoc();
				if($rd1['topic_author'] == $_SESSION['uid'])
				{
					if($rd1['topic_title'] != '')
					{
						// Se il messaggio � un topic, inserisce l'input per il titolo
						$con .= '<div class="form-group"><label for="title">Titolo</label>';
						$con .= '<input type="text" name="title" class="form-control" id="title" value="' . $rd1['topic_title'] . '" /></div>';
					} else {
						// Se il messaggio � una risposta, lo nasconde
						$con .= '<input type="hidden" name="title" value="' . $rd1['topic_title'] . '" />'; 
					}
					// Inserisce il contenuto precedente nella textarea
					$con .= '<div class="form-group"><label for="content">Testo del Topic</label>';
					$con .= '<textarea cols="80" rows="10" class="form-control" id="content" name="content">' . $rd1['topic_content'] . '</textarea></div>';
					$sub .= '<input type="submit" class="btn btn-success" value="Modifica">';
				} else {
					exit('<div class="alert alert-danger">Impossibile modificare il messaggio');
				}
			}
		}
	break;

	case 4: 
		// Strumenti master
		// Cancellazione di un topic
		if( ! empty($_POST['delete']) AND $_POST['delete'] == 1)
		{
			// Cancellazione di un topic "genitore"
			if($_POST['parent_id'] != "")
			{
				$parent_id = (int)$_POST['parent_id'];
				$db -> query("DELETE FROM topics WHERE topic_id = '$parent_id' OR topic_parent = '$parent_id'");
				
				$con = 'Messaggio eliminato con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
			}

			// Cancellazione di una risposta
			if( ! empty($_POST['topic_id']) AND $_POST['topic_id'] != "")
			{
				$topic_id = (int)$_POST['topic_id'];
				$db -> query("DELETE FROM topics WHERE topic_id = '$topic_id'");
				
				$con = 'Messaggio eliminato con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
			}
		}

		// Evidenziazione di un topic
		if( ! empty($_POST['highlight']) AND $_POST['highlight'] == 1)
		{
			$parent_id = (int)$_POST['parent_id'];
			$db -> query("UPDATE topics SET topic_highlight = 1 WHERE topic_id = '$parent_id'");
			
			$con = 'Messaggio evidenziato con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		}
		
		// Rimozione dell'evidenziatura di un topic
		if( ! empty($_POST['highlight']) AND $_POST['highlight'] == 2)
		{
			$parent_id = (int)$_POST['parent_id'];
			$db -> query("UPDATE topics SET topic_highlight = 0 WHERE topic_id = '$parent_id'");
			
			$con = 'Evidenziazione rimossa con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		}
		
		// Chiusura di un topic
		if ( ! empty($_POST['lock']) AND $_POST['lock'] == 1)
		{
			$parent_id = (int)$_POST['parent_id'];
			$db -> query("UPDATE topics SET topic_lock = 1 WHERE topic_id = '$parent_id'");
			
			$con = 'Thread chiuso con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		}
		
		// Apertura di un topic
		if( ! empty($_POST['lock']) AND $_POST['lock'] == 2)
		{
			$parent_id = (int)$_POST['parent_id'];
			$db -> query("UPDATE topics SET topic_lock = 0 WHERE topic_id = '$parent_id'");
			
			$con = 'Thread aperto con successo. <a href="boards.php" class="btn btn-link" target="_self">Torna alle Bacheche</a>';
		}
		
	break;
}
// Lista delle tag speciali
$tags = array(
				'temp_title' => $g_name, 'temp_act' => $action, 'temp_alt' => $alt, 'temp_con' => $con,
				'temp_sub' => $sub, 'temp_bid' => $bid, 'temp_tid' => $tid, 'temp_pid' => $pid
		);

// Carica il template e formatta le tag speciali
$temp = new template('style/board-write.template.html');
$temp -> replace($tags);

// Visualizza l'output
echo $temp -> show();

// Chiude la connessione al database
$db -> close();

?>